import { testPhone } from "../../utils/method.js"
const app = getApp()
Component({
  /**
   *  消息，房客源，所有列表搜索框
   * - @author           狄兆璐
   * - @date             2018-07-02
   *  placeholder      默认输入
   *  message           是否有搜索条件
   *  model               搜索条件model
   *  isModel            判断搜索页面
   *  filterbar            隐藏展示滚动条
   *  index                设置搜索字典初始
   */
  properties: {
    placeholder: {
      type: String,
      value: '请输入'
    },
    message: {
      type: Boolean,
      value: true
    },
    filterbar: Boolean,
    model: Array,
    isModel: String
  },
  data: {
    index: '0'
  },
  methods: {
    /**
      * 表单提交事件，收集formId　
      * author dzl
      */
     formSubmit: function (e) {
      // 获取formId
      let formId = e.detail.formId
      //处理保存推送码
      app.dealFormIds(formId)
      app.saveFormIds()
    },
    /**
     * 修改搜索时的字典选项
     */
    bindPickerChange: function(e) {
      this.setData({
        index: e.detail.value
      })
    },
    /**
     * 搜索页的跳转
     * author dzl
     */
    searchPage: function() {
      let isModel = this.data.isModel
      // this.triggerEvent("searchPage", isModel)
    },
    /**
     * 获取输入框搜索的值
     */
    searchValue (e) {
      this.setData({ inputValue: e.detail.value })
    },
    clearInput () {
      this.setData({ inputValue: ''})
    },
    /**
     * 点击搜索 通话列表
     * author wl
     */
    phoneSearch() {
      // 获取输入的值
      let value = this.data.inputValue
      // 设置名字编号变量
      let name, code
      // 如果搜索选项为编号将值赋予code
      if (this.data.index === '1') {
        code = value
      } else {
        // 搜索选项为姓名
        name = value
      }
      // 赋值搜索数据
      this.setData({ searchData: { code, name, page: 1,size: 6} })
      // 调用所有列表搜索事件传入搜索条件
      this.triggerEvent("searchList", this.data.searchData)
    },
     /**
     * 点击搜索 消息列表
     * author wl
     */
    messageSearch () {
      // 获取输入的值
      let resourceCode = this.data.inputValue
      // 调用消息列表搜索事件传入搜索编号
      this.triggerEvent("searchMessage", resourceCode)
    },
    /**
     * 点击搜索 客源
     * author wl
     */
    customerSearch () {
      // 手机号验证
      let isPhone = true, 
          // 输入框获取的值
           value = this.data.inputValue,
           // 空对象存储搜索条件
           setcustomer = {}
      // 设置搜索字典项key客源编号，客源名称，推送人
      let customer = {
        '0': 'customerCode',
        '1': 'customerRegion',
        '3': 'operatorid'
      }
      //字典项对象中有当前索引数据将输入框的值赋值
      customer[this.data.index] ? setcustomer[customer[this.data.index]] =  value : ""
      // 手机号
      if (this.data.index === '2' && value !== "") {
        // 验证手机号
        isPhone = testPhone(value)
        // 赋值手机号
        setcustomer.phone = value
      }
      // 检测是否有筛选条件为空删除属性
      let data = this.detectObject(setcustomer)
      // 如果不是搜索手机号执行客源搜索事件，传入数据
      // 如果是手机号搜索手机号验证通过调用搜索
      isPhone ? this.triggerEvent("searchCustomer", data):""
    },
    /**
     * 点击搜索房源
     * author wl
     */
    houseSearch  () {
      // 输入框获取的值
      let value = this.data.inputValue,
          // 手机号验证
           isPhone = true,
           // 空对象存储搜索条件
           sethouse = {}
       // 设置搜索字典项key除手机号外
      let house = {
        '1': 'houseCode',
        '0': 'estateName',
        '2': 'houseNum',
        '3': 'houseOwnerName',
        '5': 'operatorid'
      }
      //字典项对象中有当前索引数据将输入框的值赋值
      house[this.data.index] ? sethouse[house[this.data.index]] = value : ""
      // 手机号
      if (this.data.index === '4' && value !== "") {
        // 验证手机号
        isPhone = testPhone(value)
        // 赋值手机号
        sethouse.phone = value
      } 
      // 检测搜索对象是否有空值，删除属性
      let data = this.detectObject(sethouse)
      // 如果不是搜索手机号执行房源搜索事件，传入数据
      // 如果是手机号搜索手机号验证通过调用搜索
      isPhone ? this.triggerEvent("searcHouse", data) : ""
    },
    /**
     * 检测对象中属性是否有值
     * author wl
     */
    detectObject(model) {
      // 循环搜索对象
      for (let i in model) {
        // 属性为空或未定义
        if (model[i] === '' || model[i] === undefined) {
          // 删除当前属性
          delete model[i]
        }
      }
      // 返回新的对象
      return model
    }
  }
})